﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using SERIX.Util;
using SERIX.Classes;

namespace SERIX
{
    public partial class OrganizacoesManut : Seguranca
    {
        string _operacao;
        string _idt_org;
        string _idt_mun = "";
        string _filtro = "";
        string _idt_socio;        

        private void lovSelecao(string chave, string descricao)
        {
            tbIDT_MUN.Text = descricao;
            tbIDT_MUN.Attributes.Add("chave", chave);

            ddlComunidade.DataSource = COrganizacoes.PreencherDropDown(chave);
            ddlComunidade.DataTextField = "NOME_COM";
            ddlComunidade.DataValueField = "IDT_COM";            
            ddlComunidade.DataBind();

        }


        
        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            lovMunicipio.Selecao += new SERIX.Controles.lovGenerica.SelecaoDelegate(lovSelecao);
            lovMunicipio.ConfigurarLov("Serix", "srx_municipios", "IDT_MUN", "NOME_MUN", "NOME_MUN", "Pesquisa de Municípios", "Nome");


            _operacao = Request["OP"];
            if (!String.IsNullOrEmpty(Request["idt_org"]))
            {
                _idt_org = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_org"]));                           
            }
            if (!String.IsNullOrEmpty(Request["idt_mun"]))
            {
                _idt_mun = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_mun"]));
                _filtro = "?idt_mun=" + Server.UrlEncode(Request["idt_mun"]);
            }
              
            
            if (!Page.IsPostBack)
            {
                BiblioSERIX.PreencherDdl(ref ddlIDT_TPO_ORG, CTiposOrganizacoes.ObterTodos(UsuAut.Login), "DSC_TPO_ORG", "IDT_TPO_ORG");     
                switch (_operacao)
                {
                        
                    case "R":
                        {
                            CarregarDadosGrid();
                            Panel4.Visible = true;
                            lblTitulo.Text = "Cadastro de Organizações";
                            Cancelar_Button.Visible = false;
                            CarregarControles();
                            DesabilitaControles();
                            break;
                        }
                    case "U":
                        {
                            CarregarDadosGrid();
                            Panel3.Visible = true;
                            Panel4.Visible = true;
                            GridView1.Visible = true;
                            lblTitulo.Text = "Cadastro de Organizações";
                            CarregarControles();
                            tbNOM_ORG.Focus();
                            break;

                        }
                    case "I":
                        {
                            if (!string.IsNullOrEmpty(_idt_mun))
                            {
                                CMunicipios municipio = CMunicipios.PesquisaporCodigo(_idt_mun, UsuAut.Login);
                                tbIDT_MUN.Text = municipio.Nome_mun;
                                tbIDT_MUN.Attributes.Add("chave", municipio.Idt_mun);
                                //((Button)lovMunicipio1.FindControl("btnLov")).Enabled = false;
                                ddlIDT_TPO_ORG.Focus();
                            }
                            else
                            {
                                lovMunicipio.Focus();
                            }
                            lblTitulo.Text = "Cadastro de Organizações";
                            break;
                        }
                    case "D":
                        {
                            lblTitulo.Text = "Exclusão de Organizações";
                            CarregarControles();                            
                            DesabilitaControles();
                            break;
                        }
                    default: break;
                }
            }
        }

        protected void CarregarControles()
        {
            COrganizacoes organizacoes = COrganizacoes.PesquisaporCodigo(_idt_org, UsuAut.Login);
            CMunicipios municipio = CMunicipios.PesquisaporCodigo(organizacoes.Idt_mun, UsuAut.Login);
            tbIDT_MUN.Text = municipio.Nome_mun;
            tbIDT_MUN.Attributes.Add("chave", municipio.Idt_mun);
            ddlIDT_TPO_ORG.SelectedValue = organizacoes.Idt_tpo_org;
            tbANO_CRIACAO.Text = organizacoes.Ano_criacao;
            tbNOM_ORG.Text = Biblio.TirarAcentos(organizacoes.Nom_org.ToUpper());
            tbCNPJ.Text = organizacoes.Cnpj;
            BiblioSERIX.PreencherDdl(ref ddlComunidade, CComunidades.ObterPorIDT_MUN(tbIDT_MUN.Attributes["chave"].ToString(), usuAut.Login), "NOME_COM", "IDT_COM");
            ddlComunidade.SelectedValue = organizacoes.Idt_com;

        }

        protected void DesabilitaControles()
        {
            ((Button)lovMunicipio.FindControl("btnLov")).Enabled = false;
            tbIDT_MUN.Enabled = false;
            tbIDT_MUN.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            tbIDT_MUN.BackColor = System.Drawing.Color.WhiteSmoke;
            ddlIDT_TPO_ORG.Enabled = false;
            ddlIDT_TPO_ORG.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            ddlIDT_TPO_ORG.BackColor = System.Drawing.Color.WhiteSmoke;
            tbANO_CRIACAO.Enabled = false;
            tbANO_CRIACAO.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            tbANO_CRIACAO.BackColor = System.Drawing.Color.WhiteSmoke;           
            tbNOM_ORG.Enabled = false;
            tbNOM_ORG.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            tbNOM_ORG.BackColor = System.Drawing.Color.WhiteSmoke;
            tbCNPJ.Enabled = false;
            tbCNPJ.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            tbCNPJ.BackColor = System.Drawing.Color.WhiteSmoke;
            ddlComunidade.Enabled = false;
            ddlComunidade.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            ddlComunidade.BackColor = System.Drawing.Color.WhiteSmoke;
            GridView1.Visible = true;
        }

        protected void Ok_Button_Click(object sender, EventArgs e)
        {
            try
            {
                string CNPJ = BiblioSERIX.ObterSomenteNumeros(tbCNPJ.Text);
                //if (!string.IsNullOrEmpty(CNPJ) && !Biblioteca.Utils.Biblio.ValidaCNPJ(CNPJ))
               // {
               //     throw new Exception("CNPJ Inválido");
               // }
                
                COrganizacoes organizacoes;
                if (String.IsNullOrEmpty(_idt_org) && _operacao[0].Equals('I'))
                {
                    _idt_org = COrganizacoes.ObterNovoIdt(UsuAut.Login).ToString();
                   
                }
                organizacoes = new COrganizacoes(_idt_org, tbIDT_MUN.Attributes["chave"], ddlIDT_TPO_ORG.SelectedValue, tbANO_CRIACAO.Text, Biblio.TirarAcentos(tbNOM_ORG.Text.ToUpper()), CNPJ, "V",ddlComunidade.SelectedValue);
                switch (_operacao)
                {
                    case "I":
                        {
                            organizacoes.Inserir(UsuAut.Login);
                            break;
                        }
                    case "U":
                        {
                            organizacoes.Alterar(UsuAut.Login);
                            break;
                        }
                    case "D":
                        {
                            organizacoes.Excluir(UsuAut.Login);
                            break;
                        }
                    default: break;
                }
                Response.Redirect("Organizacoes.aspx" + _filtro);
            }
            catch (Exception ex)
            {
                lblErro.Text = "*Erro: " + ex.Message;
                lblErro.Visible = true;
            }
        }

        protected void Cancelar_Button_Click(object sender, EventArgs e)
        {
            Response.Redirect("Organizacoes.aspx" + _filtro);
        }

        protected void tbCpf_TextChanged(object sender, EventArgs e)
        {
            string condicao = CBeneficiarios.PesquisarCpf(BiblioSERIX.RemoveCharsEspeciais(tbCpf.Text), UsuAut.Login).Idt_benef;
             if (condicao != "")
             {
                 CBeneficiarios Objeto = new CBeneficiarios();
                 Objeto = CBeneficiarios.PesquisaporCodigo(condicao, UsuAut.Login,false);
                 tbNomeSocio.Text = Objeto.Nom_benef;
             }
             else if(condicao == "")
             {
                 tbNomeSocio.ReadOnly = false;
             }

        }

        protected void btnInserir_Click(object sender, EventArgs e)
        {
             _idt_socio = CSociosOrg.ObterIdt(UsuAut.Login).ToString();             
             CSociosOrg Objeto = new CSociosOrg();
             Objeto.InserirSocio(_idt_socio, _idt_org, Biblio.TirarAcentos(tbNomeSocio.Text.ToUpper()), tbCpf.Text);
            GridView1.DataSource = Objeto.Tabela(_idt_org);
            GridView1.DataBind();
            tbCpf.Text = "";
            tbNomeSocio.Text = "";
            tbNomeSocio.ReadOnly = false;
        }

       
        protected void CarregarDadosGrid()    
        {
        CSociosOrg Socios = new CSociosOrg();
        GridView1.DataSource = Socios.Tabela(_idt_org);                          
        GridView1.DataBind();    
        }

        protected void tbIDT_MUN_PreRender(object sender, EventArgs e)
        {            
             if (tbIDT_MUN.Text != "" && ddlComunidade.SelectedIndex == 0)
            {
                BiblioSERIX.PreencherDdl(ref ddlComunidade, CComunidades.ObterPorIDT_MUN(tbIDT_MUN.Attributes["chave"].ToString(), usuAut.Login),"NOME_COM","IDT_COM");
                
            }
           
        }       

        
       
    }
}
